package com.xxgc.ssm.po;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ExamineExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ExamineExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andEIdIsNull() {
            addCriterion("e_id is null");
            return (Criteria) this;
        }

        public Criteria andEIdIsNotNull() {
            addCriterion("e_id is not null");
            return (Criteria) this;
        }

        public Criteria andEIdEqualTo(Long value) {
            addCriterion("e_id =", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdNotEqualTo(Long value) {
            addCriterion("e_id <>", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdGreaterThan(Long value) {
            addCriterion("e_id >", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdGreaterThanOrEqualTo(Long value) {
            addCriterion("e_id >=", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdLessThan(Long value) {
            addCriterion("e_id <", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdLessThanOrEqualTo(Long value) {
            addCriterion("e_id <=", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdIn(List<Long> values) {
            addCriterion("e_id in", values, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdNotIn(List<Long> values) {
            addCriterion("e_id not in", values, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdBetween(Long value1, Long value2) {
            addCriterion("e_id between", value1, value2, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdNotBetween(Long value1, Long value2) {
            addCriterion("e_id not between", value1, value2, "eId");
            return (Criteria) this;
        }

        public Criteria andEAndUidIsNull() {
            addCriterion("e_and_uId is null");
            return (Criteria) this;
        }

        public Criteria andEAndUidIsNotNull() {
            addCriterion("e_and_uId is not null");
            return (Criteria) this;
        }

        public Criteria andEAndUidEqualTo(Long value) {
            addCriterion("e_and_uId =", value, "eAndUid");
            return (Criteria) this;
        }

        public Criteria andEAndUidNotEqualTo(Long value) {
            addCriterion("e_and_uId <>", value, "eAndUid");
            return (Criteria) this;
        }

        public Criteria andEAndUidGreaterThan(Long value) {
            addCriterion("e_and_uId >", value, "eAndUid");
            return (Criteria) this;
        }

        public Criteria andEAndUidGreaterThanOrEqualTo(Long value) {
            addCriterion("e_and_uId >=", value, "eAndUid");
            return (Criteria) this;
        }

        public Criteria andEAndUidLessThan(Long value) {
            addCriterion("e_and_uId <", value, "eAndUid");
            return (Criteria) this;
        }

        public Criteria andEAndUidLessThanOrEqualTo(Long value) {
            addCriterion("e_and_uId <=", value, "eAndUid");
            return (Criteria) this;
        }

        public Criteria andEAndUidIn(List<Long> values) {
            addCriterion("e_and_uId in", values, "eAndUid");
            return (Criteria) this;
        }

        public Criteria andEAndUidNotIn(List<Long> values) {
            addCriterion("e_and_uId not in", values, "eAndUid");
            return (Criteria) this;
        }

        public Criteria andEAndUidBetween(Long value1, Long value2) {
            addCriterion("e_and_uId between", value1, value2, "eAndUid");
            return (Criteria) this;
        }

        public Criteria andEAndUidNotBetween(Long value1, Long value2) {
            addCriterion("e_and_uId not between", value1, value2, "eAndUid");
            return (Criteria) this;
        }

        public Criteria andETypeIsNull() {
            addCriterion("e_type is null");
            return (Criteria) this;
        }

        public Criteria andETypeIsNotNull() {
            addCriterion("e_type is not null");
            return (Criteria) this;
        }

        public Criteria andETypeEqualTo(String value) {
            addCriterion("e_type =", value, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeNotEqualTo(String value) {
            addCriterion("e_type <>", value, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeGreaterThan(String value) {
            addCriterion("e_type >", value, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeGreaterThanOrEqualTo(String value) {
            addCriterion("e_type >=", value, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeLessThan(String value) {
            addCriterion("e_type <", value, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeLessThanOrEqualTo(String value) {
            addCriterion("e_type <=", value, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeLike(String value) {
            addCriterion("e_type like", value, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeNotLike(String value) {
            addCriterion("e_type not like", value, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeIn(List<String> values) {
            addCriterion("e_type in", values, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeNotIn(List<String> values) {
            addCriterion("e_type not in", values, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeBetween(String value1, String value2) {
            addCriterion("e_type between", value1, value2, "eType");
            return (Criteria) this;
        }

        public Criteria andETypeNotBetween(String value1, String value2) {
            addCriterion("e_type not between", value1, value2, "eType");
            return (Criteria) this;
        }

        public Criteria andEAndBidIsNull() {
            addCriterion("e_and_bId is null");
            return (Criteria) this;
        }

        public Criteria andEAndBidIsNotNull() {
            addCriterion("e_and_bId is not null");
            return (Criteria) this;
        }

        public Criteria andEAndBidEqualTo(Long value) {
            addCriterion("e_and_bId =", value, "eAndBid");
            return (Criteria) this;
        }

        public Criteria andEAndBidNotEqualTo(Long value) {
            addCriterion("e_and_bId <>", value, "eAndBid");
            return (Criteria) this;
        }

        public Criteria andEAndBidGreaterThan(Long value) {
            addCriterion("e_and_bId >", value, "eAndBid");
            return (Criteria) this;
        }

        public Criteria andEAndBidGreaterThanOrEqualTo(Long value) {
            addCriterion("e_and_bId >=", value, "eAndBid");
            return (Criteria) this;
        }

        public Criteria andEAndBidLessThan(Long value) {
            addCriterion("e_and_bId <", value, "eAndBid");
            return (Criteria) this;
        }

        public Criteria andEAndBidLessThanOrEqualTo(Long value) {
            addCriterion("e_and_bId <=", value, "eAndBid");
            return (Criteria) this;
        }

        public Criteria andEAndBidIn(List<Long> values) {
            addCriterion("e_and_bId in", values, "eAndBid");
            return (Criteria) this;
        }

        public Criteria andEAndBidNotIn(List<Long> values) {
            addCriterion("e_and_bId not in", values, "eAndBid");
            return (Criteria) this;
        }

        public Criteria andEAndBidBetween(Long value1, Long value2) {
            addCriterion("e_and_bId between", value1, value2, "eAndBid");
            return (Criteria) this;
        }

        public Criteria andEAndBidNotBetween(Long value1, Long value2) {
            addCriterion("e_and_bId not between", value1, value2, "eAndBid");
            return (Criteria) this;
        }

        public Criteria andEAndDcidIsNull() {
            addCriterion("e_and_dcId is null");
            return (Criteria) this;
        }

        public Criteria andEAndDcidIsNotNull() {
            addCriterion("e_and_dcId is not null");
            return (Criteria) this;
        }

        public Criteria andEAndDcidEqualTo(Long value) {
            addCriterion("e_and_dcId =", value, "eAndDcid");
            return (Criteria) this;
        }

        public Criteria andEAndDcidNotEqualTo(Long value) {
            addCriterion("e_and_dcId <>", value, "eAndDcid");
            return (Criteria) this;
        }

        public Criteria andEAndDcidGreaterThan(Long value) {
            addCriterion("e_and_dcId >", value, "eAndDcid");
            return (Criteria) this;
        }

        public Criteria andEAndDcidGreaterThanOrEqualTo(Long value) {
            addCriterion("e_and_dcId >=", value, "eAndDcid");
            return (Criteria) this;
        }

        public Criteria andEAndDcidLessThan(Long value) {
            addCriterion("e_and_dcId <", value, "eAndDcid");
            return (Criteria) this;
        }

        public Criteria andEAndDcidLessThanOrEqualTo(Long value) {
            addCriterion("e_and_dcId <=", value, "eAndDcid");
            return (Criteria) this;
        }

        public Criteria andEAndDcidIn(List<Long> values) {
            addCriterion("e_and_dcId in", values, "eAndDcid");
            return (Criteria) this;
        }

        public Criteria andEAndDcidNotIn(List<Long> values) {
            addCriterion("e_and_dcId not in", values, "eAndDcid");
            return (Criteria) this;
        }

        public Criteria andEAndDcidBetween(Long value1, Long value2) {
            addCriterion("e_and_dcId between", value1, value2, "eAndDcid");
            return (Criteria) this;
        }

        public Criteria andEAndDcidNotBetween(Long value1, Long value2) {
            addCriterion("e_and_dcId not between", value1, value2, "eAndDcid");
            return (Criteria) this;
        }

        public Criteria andECreateTimeIsNull() {
            addCriterion("e_create_time is null");
            return (Criteria) this;
        }

        public Criteria andECreateTimeIsNotNull() {
            addCriterion("e_create_time is not null");
            return (Criteria) this;
        }

        public Criteria andECreateTimeEqualTo(Date value) {
            addCriterion("e_create_time =", value, "eCreateTime");
            return (Criteria) this;
        }

        public Criteria andECreateTimeNotEqualTo(Date value) {
            addCriterion("e_create_time <>", value, "eCreateTime");
            return (Criteria) this;
        }

        public Criteria andECreateTimeGreaterThan(Date value) {
            addCriterion("e_create_time >", value, "eCreateTime");
            return (Criteria) this;
        }

        public Criteria andECreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("e_create_time >=", value, "eCreateTime");
            return (Criteria) this;
        }

        public Criteria andECreateTimeLessThan(Date value) {
            addCriterion("e_create_time <", value, "eCreateTime");
            return (Criteria) this;
        }

        public Criteria andECreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("e_create_time <=", value, "eCreateTime");
            return (Criteria) this;
        }

        public Criteria andECreateTimeIn(List<Date> values) {
            addCriterion("e_create_time in", values, "eCreateTime");
            return (Criteria) this;
        }

        public Criteria andECreateTimeNotIn(List<Date> values) {
            addCriterion("e_create_time not in", values, "eCreateTime");
            return (Criteria) this;
        }

        public Criteria andECreateTimeBetween(Date value1, Date value2) {
            addCriterion("e_create_time between", value1, value2, "eCreateTime");
            return (Criteria) this;
        }

        public Criteria andECreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("e_create_time not between", value1, value2, "eCreateTime");
            return (Criteria) this;
        }

        public Criteria andEValidIsNull() {
            addCriterion("e_valid is null");
            return (Criteria) this;
        }

        public Criteria andEValidIsNotNull() {
            addCriterion("e_valid is not null");
            return (Criteria) this;
        }

        public Criteria andEValidEqualTo(String value) {
            addCriterion("e_valid =", value, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidNotEqualTo(String value) {
            addCriterion("e_valid <>", value, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidGreaterThan(String value) {
            addCriterion("e_valid >", value, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidGreaterThanOrEqualTo(String value) {
            addCriterion("e_valid >=", value, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidLessThan(String value) {
            addCriterion("e_valid <", value, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidLessThanOrEqualTo(String value) {
            addCriterion("e_valid <=", value, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidLike(String value) {
            addCriterion("e_valid like", value, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidNotLike(String value) {
            addCriterion("e_valid not like", value, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidIn(List<String> values) {
            addCriterion("e_valid in", values, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidNotIn(List<String> values) {
            addCriterion("e_valid not in", values, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidBetween(String value1, String value2) {
            addCriterion("e_valid between", value1, value2, "eValid");
            return (Criteria) this;
        }

        public Criteria andEValidNotBetween(String value1, String value2) {
            addCriterion("e_valid not between", value1, value2, "eValid");
            return (Criteria) this;
        }

        public Criteria andEDescribeIsNull() {
            addCriterion("e_describe is null");
            return (Criteria) this;
        }

        public Criteria andEDescribeIsNotNull() {
            addCriterion("e_describe is not null");
            return (Criteria) this;
        }

        public Criteria andEDescribeEqualTo(String value) {
            addCriterion("e_describe =", value, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeNotEqualTo(String value) {
            addCriterion("e_describe <>", value, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeGreaterThan(String value) {
            addCriterion("e_describe >", value, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeGreaterThanOrEqualTo(String value) {
            addCriterion("e_describe >=", value, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeLessThan(String value) {
            addCriterion("e_describe <", value, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeLessThanOrEqualTo(String value) {
            addCriterion("e_describe <=", value, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeLike(String value) {
            addCriterion("e_describe like", value, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeNotLike(String value) {
            addCriterion("e_describe not like", value, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeIn(List<String> values) {
            addCriterion("e_describe in", values, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeNotIn(List<String> values) {
            addCriterion("e_describe not in", values, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeBetween(String value1, String value2) {
            addCriterion("e_describe between", value1, value2, "eDescribe");
            return (Criteria) this;
        }

        public Criteria andEDescribeNotBetween(String value1, String value2) {
            addCriterion("e_describe not between", value1, value2, "eDescribe");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}